package com.nb.service;

import com.mybatisflex.core.paginate.Page;
import com.nb.dto.*;
import com.nb.entity.User;
import com.nb.vo.*;

import java.util.List;

public interface UserService {

    List<User> list();

    LoginVO login(LoginDTO loginDTO);
    RegisterVO register(RegisterDTO registerDTO);

    Long createUser(CreateUserDTO createUserDTO);

    // 添加更新用户方法（接收DTO参数）
    void updateUser(UpdateUserDTO updateUserDTO);
    //删除用户
    void deleteUser(Long id);
    // 添加删除用户方法声明

    //根据id查询用户
    User getUserById(Long id);
    //根据用户名查询用户
    User getByUsername(String username);

    void resetPassword(ResetPasswordDTO resetPasswordDTO);
    Page<UserVO> getUserPage(UserQueryDTO queryDTO);
    UserVO getUserDetail(Long id);
    // 律师注册方法
    RegisterVO registerLawyer(LawyerRegisterDTO registerDTO);

    void updateStatus(StatusDTO statusDTO);
    void assignRoles(AssignRolesDTO dto);
}
